In basic terms, people often wish to communicate with one another with a degree of privacy or confidentiality. Accordingly, in a computer network environment, a message may be enciphered before being transmitted over an insecure network, such as the Internet. The enciphered message has thus been converted from "plaintext" to "ciphertext." The intended receiver of the message may then decipher the "ciphertext" message to obtain a "plaintext" version thereof. The terms encipher and decipher are used instead of the terms encrypt and decrypt in accordance with ISO 7498-2.
In the computer network environment, confidentiality is one goal among others. Other goals include authentication, authorization, data integrity, and nonrepudiation. By authentication, it is meant that it should be possible for the receiver of information to ascertain its origin to mitigate against the possibility of an interloper masquerading as the sender. By authorization, it is meant that is should be possible to ascertain whether a user is permitted to perform an operation. By data integrity, it is meant that it should be possible for the receiver of data to verify that it has not been modified in transit to mitigate against the possibility of an intruder introducing false data. By nonrepudiation, it is meant that a sender should not be able to falsely deny origination of a message sent by them. Thus, enhancing security of a computer network may include enhancing one or more of these goals of confidentiality, authentication, authorization, data integrity, and nonrepudiation.
As mentioned above, plaintext is converted into ciphertext to enhance security. This transformation conventionally uses a cryptographic algorithm or cipher. Moreover, a cipher is conventionally used to convert the ciphertext back to plaintext. For either type of conversion, a cipher is conventionally a mathematical function for enciphering or deciphering a message.
Modern cryptography employs one or more "keys." A "key" in a cryptographic sense is employed to "lock" (encipher) or "unlock" (decipher) a message. However, a "key" in cryptographic sense is conventionally one or more numbers. In a security system premised on secrecy of keys and not secrecy of algorithms using the keys, algorithms may be widely published without significantly adversely harming security.
Security protocols have been developed using one or more ciphers to achieve one or more of the above-mentioned goals of confidentiality, authentication, authorization, data integrity, and nonrepudiation. Two examples of such protocols are Kerberos and Secure Sockets Layer (SSL). Each of these protocols are described in more detail in allowed co-pending U.S. patent application, application Ser. No. 08/799,402, filed Feb. 12, 1997, entitled "Method for Providing Secure Remote Command Execution Over an Insecure Computer Network" to the named inventor herein (hereinafter referred to as "Shambroom-I").
In Shambroom-I, an approach for increasing security of data transmission between a client and a server is described. However, Shambroom-I does not provide enhance security with a "mobile code" technology, including without limitation Java (Java is a trademark of Sun Microsystems, Inc.). Java is one example of a platform-independent object-oriented programming language used for writing "applets" that are downloadable over a network (for example, the Internet) by a client and executable on the client's machine. "Applets" are applications programs that downloadable and run in a client's web browser or applet viewer. In other words, Shambroom-I does not provide enhanced security for applications employing downloadable executable content.
Accordingly, it would be desirable to provide enhanced security for applications employing downloadable executable content.